// 加载express模块
let express = require('express')
let app= express();
// 使用框架自带解析模式
app.use(express.urlencoded({extended:false}))
//加载fs模块
let fs = require("fs");
// 加载persons.json
let persons = fs.readFileSync(__dirname + "/persons.json", "utf8");
// 转换  将字符串转换为对象数组
persons = JSON.parse(persons);
//加载ejs模板引擎
let ejs=require('ejs');
app.set("view engine", "html");//识别后缀名为html的网页文件
app.set("views", __dirname + "/pages");//加载视图文件目录
app.engine("html",ejs.__express);//启用使用ejs模板引擎
app.use(express.static(__dirname+'/static'));//利用内置中间件去加载静态网页文件
// 渲染登录界面
app.get('/login', (req, res) => {
    res.render('login.html');
})
// 登录界面提交
app.post('/login', (req, res) => {
    // 设定获取表单的输入值
    let username = req.body.username;
    let password = req.body.password;
    // 利用find接收返回值判断是否满足persons储存的密码和账号
    let u = persons.find((item, index) => {
        return item.username == username && item.password == password
    });
    if (u) {
        res.send({ "code": "200", "msg": "登录成功" })
    } else {
        res.send({ "code": "400", "msg": "登录失败" })
    }
})
// 渲染注册界面
app.get('/register', (req, res) => {
    res.render('register.html');
})
// 注册界面提交
app.post('/register', (req, res) => {
    // 设定获取表单的输入值
    let username=req.body.username;
    let password=req.body.password;
    let password1=req.body.password1;
    //创建一个对象，去判断persons内是否储存这个对象
    let obj={
        'username':username,
        'password':password
    }
    // 利用findIndex接收返回值判断是否满足persons储存的密码和账号
    let u = persons.findIndex((item, index) => {
        return (item.username == username && item.password == password)&&(password==password1)
    });
    if(u==-1){
        // 当persons内不存在该对象时，将此对象向添加，写入到persons.json内
        persons.push(obj);
        let personsnew=JSON.stringify(persons);
        fs.writeFileSync(__dirname + '/persons.json', personsnew);
        res.send({ "code": "200", "msg": "没有该账户,允许注册" })
    }else{
        res.send({ "code": "400", "msg": "已有该用户" })
    }
})
// 监听端口
app.listen(3000,'127.0.0.1',()=>{
    console.log('启动成功');
})
